# i.e. contains a non-approved character, or a dash not
# between \w's. NB \w includes underscore.
badreq(403, "Illegal Request", "Unsafe characters in $_[0].");
printf STDERR "[$lt] $progname: Unsafe characters in \"$_[0] $_\" on request from %s\n", $ENV{REMOTE_HOST}?$ENV{REMOTE_HOST}:($ENV{REMOTE_ADDR}?$ENV{REMOTE_ADDR}:"unknown host");
die;
}
}
}
# E) CHECK NO UNSAFE CHARACTERS IN OTHER COMMANDS. Again, see docs/form.html.
sub checkchars {
local $_ = $_[0];
if (/[\x00-\x1F\x7F-\x9F]/) {
badreq(403, "Illegal Request", "Unsafe characters in \U$p.");
printf STDERR "[$lt] $progname: Unsafe characters in \"\U$p\E $_\" on request from %s\n", $ENV{REMOTE_HOST}?$ENV{REMOTE_HOST}:($ENV{REMOTE_ADDR}?$ENV{REMOTE_ADDR}:"unknown host");
die;
}
}
# F) PRINT OUT ERROR MESSAGE
sub badreq {
my($i);
print "Content-Type: text/html\n";
print "Status: $_[0] $_[1]\n\n";
print '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">';